package flst.ipiweb.struts.action.livraison;

import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import flst.ipiweb.service.ServiceLivraison;
import flst.ipiweb.transverse.Adresse;
import flst.ipiweb.transverse.IPIException;
import flst.ipiweb.transverse.Relai;

public class UpdateRelaiPostAction extends Action{

	public ActionForward execute(
			ActionMapping mapping, 
			ActionForm form,
			HttpServletRequest request, 
			HttpServletResponse response)
			throws Exception {
		
			//On récupère la session
			HttpSession session = request.getSession();
			//Si l'administrateur n'est pas logué 
			//on le redirige sur le formulaire de login
			if(session.getAttribute("login") == null)
			{
				return mapping.findForward("login");
			}
							
			//Instanciation du relai avec les infos du formulaire
			RelaiForm vRelaiForm = (RelaiForm) form;
			Relai relai = new Relai();
			relai.setIdRelai(vRelaiForm.getIdRelai());
			relai.setNumeroRelai(vRelaiForm.getNumeroRelai());
			relai.setNom(vRelaiForm.getLibelle());
			//Attribut Adresse
			Adresse adresse = new Adresse();
			adresse.setAdresse(vRelaiForm.getAdresse());
			adresse.setComplementsAdresse(vRelaiForm.getComplementAdresse());
			adresse.setCodePostal(vRelaiForm.getCodePostal());
			adresse.setVille(vRelaiForm.getVille());
			relai.setAdresse(adresse);
			
			//Création du relai
			ServiceLivraison sLivraison = new ServiceLivraison();
			try
			{
				sLivraison.updateRelai(relai);
				//Message de succes
				session.setAttribute("success", "RelaiSuccess.update");
				session.setAttribute("error", null);
			}
			catch(IPIException e)
			{
				//Message d'erreur
				session.setAttribute("error", e.getMessage());
				session.setAttribute("success", null);
				
				request.setAttribute("relai", relai);
				
				//Titre de la page
				request.setAttribute("pageTitle", "relai.new.title");
				//Activation de l'onglet livraison
				HashMap<String, String> onglet = new HashMap<String, String>();
				onglet.put("livraison", "active");
				request.setAttribute("onglet", onglet);
				//Action du formulaire
				request.setAttribute("action", "/update-relai-post");
				
				return mapping.findForward("update_relai");
			}
			
			return mapping.findForward("list_relai");
		}
}
